From 95c4e70768deafad3d99346cf0533636f909a13c Mon Sep 17 00:00:00 2001 From: "emellor@leeni.uk.xensource.com" Date: Fri, 10 Mar 2006 11:38:15 +0100 Subject: [PATCH] Untangle XendRoot and XendLogging by having XendLogging check the global params.XEND_DEBUG value itself. This removes the need for addLogStderr and removeLogStderr. Remove the maxBytes and backupCount parameters to init, as they are unused and we only use the hardcoded values anyway. Signed-off-by: Ewan Mellor --- tools/python/xen/xend/XendLogging.py | 48 +++++++++++----------------- tools/python/xen/xend/XendRoot.py | 11 +++---- 2 files changed, 23 insertions(+), 36 deletions(-) diff --git a/tools/python/xen/xend/XendLogging.py b/tools/python/xen/xend/XendLogging.py index 053bf4703e..f26f912af5 100644 --- a/tools/python/xen/xend/XendLogging.py +++ b/tools/python/xen/xend/XendLogging.py @@ -13,7 +13,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #============================================================================ # Copyright (C) 2004, 2005 Mike Wray -# Copyright (C) 2005 XenSource Ltd +# Copyright (C) 2005, 2006 XenSource Ltd. #============================================================================ @@ -22,9 +22,10 @@ import types import logging import logging.handlers +from xen.xend.server import params -__all__ = [ 'log', 'init', 'getLogFilename', 'addLogStderr', - 'removeLogStderr' ] + +__all__ = [ 'log', 'init', 'getLogFilename' ] if not 'TRACE' in logging.__dict__: @@ -38,37 +39,28 @@ if not 'TRACE' in logging.__dict__: log = logging.getLogger("xend") -DEFAULT_MAX_BYTES = 1 << 20 # 1MB -DEFAULT_BACKUP_COUNT = 5 +MAX_BYTES = 1 << 20 # 1MB +BACKUP_COUNT = 5 STDERR_FORMAT = "[%(name)s] %(levelname)s (%(module)s:%(lineno)d) %(message)s" LOGFILE_FORMAT = "[%(asctime)s %(name)s] %(levelname)s (%(module)s:%(lineno)d) %(message)s" DATE_FORMAT = "%Y-%m-%d %H:%M:%S" -stderrHandler = logging.StreamHandler() -stderrHandler.setFormatter(logging.Formatter(STDERR_FORMAT, DATE_FORMAT)) - logfilename = None -def init(filename, level=logging.INFO, maxBytes=None, backupCount=None): - """Initialise logging. Logs to 'filename' by default, but does not log to - stderr unless addLogStderr() is called. +def init(filename, level): + """Initialise logging. Logs to the given filename, and logs to stderr if + XEND_DEBUG is set. """ global logfilename def openFileHandler(fname): - return logging.handlers.RotatingFileHandler(fname, - mode='a', - maxBytes=maxBytes, - backupCount=backupCount) - - if not maxBytes: - maxBytes = DEFAULT_MAX_BYTES - if not backupCount: - backupCount = DEFAULT_BACKUP_COUNT + return logging.handlers.RotatingFileHandler(fname, mode = 'a', + maxBytes = MAX_BYTES, + backupCount = BACKUP_COUNT) # Rather unintuitively, getLevelName will get the number corresponding to # a level name, as well as getting the name corresponding to a level @@ -89,16 +81,12 @@ def init(filename, level=logging.INFO, maxBytes=None, backupCount=None): fileHandler.setFormatter(logging.Formatter(LOGFILE_FORMAT, DATE_FORMAT)) log.addHandler(fileHandler) + if params.XEND_DEBUG: + stderrHandler = logging.StreamHandler() + stderrHandler.setFormatter(logging.Formatter(STDERR_FORMAT, + DATE_FORMAT)) + log.addHandler(stderrHandler) + def getLogFilename(): return logfilename - - -def addLogStderr(): - """Add logging to stderr.""" - log.addHandler(stderrHandler) - - -def removeLogStderr(): - """Remove logging to stderr.""" - log.removeHandler(stderrHandler) diff --git a/tools/python/xen/xend/XendRoot.py b/tools/python/xen/xend/XendRoot.py index c806f75e2f..239f128de2 100644 --- a/tools/python/xen/xend/XendRoot.py +++ b/tools/python/xen/xend/XendRoot.py @@ -102,15 +102,14 @@ class XendRoot: """ print >>sys.stderr, "xend [ERROR]", fmt % args + def configure(self): self.set_config() - logfile = self.get_config_value("logfile", self.logfile_default) - loglevel = self.get_config_value("loglevel", self.loglevel_default) - XendLogging.init(logfile, level = loglevel) + XendLogging.init(self.get_config_value("logfile", + self.logfile_default), + self.get_config_value("loglevel", + self.loglevel_default)) - from xen.xend.server import params - if params.XEND_DEBUG: - XendLogging.addLogStderr() def set_config(self): """If the config file exists, read it. If not, ignore it. -- 2.30.2